package com.software.task.mapper;

import com.software.task.pojo.Subject;
import org.apache.ibatis.annotations.*;



import java.util.List;

/**
 * @author lj20050120
 */
@Mapper
public interface SubjectMapper {
    /**
     * 添加科目
     * @param subject 科目对象
     */
    @Insert("INSERT INTO subject (title,content,cover_img,state,category_id,create_user,create_time,update_time)"+
            "VALUES (#{title},#{content},#{coverImg},#{state},#{categoryId},#{createUser},#{createTime},#{updateTime})")
    void add(Subject subject);
    /**
     * 根据id查询科目
     * @param userId 科目id
     * @param categoryId 分类id
     * @param state 状态
     * @return 科目对象
     */
    List<Subject> list(Integer userId, Integer categoryId, String state);
    /**
     * 根据id查询科目
     * @param subject 科目对象
     */
    @Update("update subject set title=#{title},content=#{content},cover_img=#{coverImg},state=#{state},category_id=#{categoryId},update_time=#{updateTime} where id=#{id}")
    void update(Subject subject);

    /**
     * 根据id删除科目
     * @param id 科目id
     */
    @Delete("delete from subject where id=#{id}")
    void delete(Integer id);

    /**
     * 根据分类id查询科目数量
     * @param categoryId 分类id
     * @return 科目数量
     */
    @Select("SELECT count(1) FROM subject WHERE category_id = #{categoryId}")
    Integer countByCategoryId(Integer categoryId);


    /**
     * 列表查询
     *
     * @param subject 查询对象
     * @return 所有列表数据
     */
    List<Subject> getSubjectList(Subject subject);
    /**
     * 批量插入
     * @param subjectList 科目列表
     * @return 插入数量
     */
    int batchInsert(List<Subject> subjectList);
}
